{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn import linear_model\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "from sklearn.metrics import accuracy_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "def loaddata():\n",
    "    data = np.loadtxt('data/data1.txt',delimiter=',')\n",
    "    n = data.shape[1] - 1  # 特征数\n",
    "    X = data[:, 0:n]\n",
    "    y = data[:, -1].reshape(-1, 1)\n",
    "    return X, y"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [],
   "source": [
    "X,y = loaddata()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 使用逻辑回归模型\n",
    "常用参数含义：\n",
    "  - C 正则化参数$\\lambda$的倒数,C越大，惩罚越小，易过拟合，泛化能力差。C越小，惩罚越大，不易过拟合，泛化能力好。\n",
    "  - multi_class: ovr, multinomial"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\dev\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  return f(*args, **kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": "LogisticRegression(C=50, max_iter=2000)"
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = linear_model.LogisticRegression(C=50,max_iter=2000)\n",
    "model.fit(X,y)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.20621451 0.20145397]]\n",
      "[-25.15918048]\n",
      "准确度= 0.89\n"
     ]
    }
   ],
   "source": [
    "print(model.coef_)\n",
    "print(model.intercept_)\n",
    "y_hat = model.predict(X)\n",
    "print(\"准确度=\",accuracy_score(y,y_hat))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plotDescisionBoundary(X,y,theta):\n",
    "    cm_dark = mpl.colors.ListedColormap(['g', 'r'])\n",
    "    plt.xlabel('Exam 1 score')\n",
    "    plt.ylabel('Exam 2 score')\n",
    "    plt.scatter(X[:,0],X[:,1],c=np.array(y).squeeze(),cmap=cm_dark,s=30)\n",
    "\n",
    "    #化分类决策面 theta0+theta1*x1+theta2*x2 = 0\n",
    "    # x1 = np.arange(20,110,0.1)\n",
    "    x1 = np.arange(min(X[:, 0]), max(X[:, 0]), 0.1)\n",
    "    x2 = -(theta[1]*x1+theta[0])/theta[2]\n",
    "    plt.plot(x1,x2)\n",
    "    plt.show()\n",
    "theta = np.append(model.intercept_,model.coef_)\n",
    "plotDescisionBoundary(X,y,theta)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}